﻿using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;

namespace WindowsGame1
{
    class Personagem
    {
        ContentManager content;

        Rectangle posicao;
        int vel = 2;

        Texture2D textura;

        Chao chao;

        public Personagem(ContentManager content, GameWindow window)
        {
            this.content = content;
            textura = content.Load<Texture2D>("personagem");
            posicao.X = window.ClientBounds.Width / 2 - textura.Width / 2;
            posicao.Y = window.ClientBounds.Height / 2 - textura.Height / 2;
            posicao.Width = textura.Width;
            posicao.Height = textura.Height;
            chao = new Chao(content, window);
        }

        public void Update(GameTime gameTime, KeyboardState teclado)
        {
            chao.Update();
            foreach (Inimigo inimigo in Inimigo.inimigos)
            {
                if (posicao.Intersects(inimigo.posicao))
                {
                    Game1.estado_atual = Game1.estados.GAME_OVER;
                }
            }

            #region Mover
            if (teclado.IsKeyDown(Keys.D))
            {
                posicao.X += vel;
            }
            if (teclado.IsKeyDown(Keys.A))
            {
                posicao.X -= vel;
            }
            if (teclado.IsKeyDown(Keys.W))
            {
                posicao.Y -= vel;
            }
            if (teclado.IsKeyDown(Keys.S))
            {
                posicao.Y += vel;
            }
            #endregion
            if (!posicao.Intersects(chao.pos))
            {
                Game1.estado_atual = Game1.estados.GAME_OVER;
            }
        }

        public void Draw(SpriteBatch spriteBatch, GameTime gameTime)
        {
            if (Game1.estado_atual != Game1.estados.MENU) chao.Draw(spriteBatch);
            spriteBatch.Draw(textura, posicao, Color.White);
        }

    }

}
